package cn.hy.机考.part04;

import java.util.Scanner;

/**
 * @author hy
 * 三十一、判断字符串子序列
 * 给定字符串 target 和 source ，判断 target 是否为 source 的子序列。
 * 你可以认为 target 和 source 中仅包含英文小写字母，字符串 source 可能会很长，
 * 而 target 是个短字符串。
 * 字符串的一个子序列是原始字符串删除一些（也可以不删除）字符而不改变剩余字符相对位置，形成的新字符串，
 * 例如，'abc’ 是 ’aebycd’ 的一个子序列，而 ’ayb’ 不是。请找出最后一个序列的起始位置。
 *
 * (例如，"abc"是"aebycd"的一个子序列，而"ayb"不是)。 请找出最后一个子序列的起始位置。
 * abc
 * abcaybec
 * 输出:3
 * 这里有两个 abc 的子序列满足，取下标较大的，故返回 3 若在 source 中找不到 target，则输出-1
 *
 */
public class Demo31 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            String str1 = sc.nextLine();
            String str2 = sc.nextLine();
            int m = str1.length() - 1;
            int n = str2.length() - 1;
            boolean flag = false;
            // 从尾部找 取下标大的
            while ( m >= 0 && n >= 0) {
                if (str1.charAt(m) == str2.charAt(n)) {
                    if (m == 0) {
                        flag = true;
                        System.out.println(n);
                    }
                    m--;
                }
                n--;
            }
            if (!flag) {
                System.out.println(-1);
            }
        }
    }
}
